package com.yanggu.scala.chapater04

import scala.util.control.Breaks._

object WhileDemo03 {

  def main(args: Array[String]): Unit = {
    //1. 实现continue和break的效果

    //continue。通过循环守卫实现
    for (i <- 1 to 10 if i % 2 == 0) {
      println(i)
    }
    //直接在代码中进行if判断
    for (i <- 1 to 10) {
      if (i % 2 == 0) {
        println(i)
      }
    }

    //break实现
    //breakable()函数
    //说明
    //1. breakable是一个高阶函数: 可以接收函数的函数就是高阶函数
    var n = 10
    breakable {
      while (n <= 20) {
        n += 1
        println(n)
        if (n == 18) {
          break()
        }
      }
    }

    //2. 使用循环守卫实现break
    println("*******************")
    var loop = true
    var sum = 0
    for (i <- 1 to 100 if loop) {
      sum += i
      if (sum > 20) {
        loop = false
      }
      println("i = " + i)
    }
    println("sum = " + sum)
  }

}
